package com.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.util.ConfigUtil;

import com.util.BODY;
import com.util.HttpRequest;
import com.util.JSONUtil;
import com.util.OpenKey;
import com.util.ReadConfig;
import com.util.SessionInfo;

/**
 * 缴存历史记录
 * @author 
 */
@Controller
@RequestMapping("/dwryxxcontroller")
public class dwryxxcontroller {

	private static final Logger logger = Logger.getLogger(dwryxxcontroller.class);
	Map map  = new HashMap();
	List list = new ArrayList();
	  
	@RequestMapping("/test")
	@ResponseBody
	public String entryinterface(HttpServletRequest request,HttpSession session, HttpServletResponse response , String limit ,String id,String start,String end  ,String XM,String SFZH,String JCZT,String yj) throws IOException{
		SessionInfo sessionIn = (SessionInfo) session.getAttribute(ConfigUtil.getSessionInfoName());
		
		//读取配置文件路劲
		String interfaceUrl = ReadConfig.readValue();
		
		Map reqMap = new HashMap();
		BODY b=new BODY();
		OpenKey opk=new OpenKey();
		//接口编码
		reqMap.put("AUTHORITY", "YBGJJ126");
		//接口参数
		if(JCZT!=""&&JCZT!=null){
			b.setRQJCQK(JCZT);
		}else{
			b.setRQJCQK("全部");
		}
		b.setDWZH(sessionIn.getDWZH());
		reqMap.put("LOGUserName","admin");	
		reqMap.put("OpenKey",sessionIn.getKEY());
		reqMap.put("BODY",b);
		String  result = opk.getOpenKey(reqMap, session);
		Map retMap = JSONUtil.toMap(result);
		logger.info("接口返回内容:"+retMap);
		if(retMap.get("RETURNCODE").equals("100")){
			retMap = (Map) retMap.get("body");
	    	List retlist = (List)retMap.get("RETDATA");
			for (int i = 0; i < retlist.size(); i++) {
				Map map = (Map) retlist.get(i);
				map.put("DWZH", retMap.get("DWZH").toString());			   
			}
			logger.info("接口返回内容:"+result);
				Map resMap = JSONUtil.toMap(result);
					List listttmp = new ArrayList();
					for(int i=0;i<=retlist.size()-1;i++){
					  Map map=(Map)retlist.get(i);
						if(XM!=null && !XM.equals("")){
							if(map.get("XINGMING")==null || map.get("XINGMING").equals("")){
								continue;
							}else if(!XM.equals(map.get("XINGMING").toString())){
								continue;
							}
						}
						
						if(JCZT!=null && !JCZT.equals("")){
							if(map.get("JCQK")==null || map.get("JCQK").equals("")){
								continue;
							}else if(!JCZT.equals(map.get("JCQK").toString())){
								continue;
							}
						}
						if(SFZH!=null && !SFZH.equals("")){
							if(map.get("ZJHM")==null || map.get("ZJHM").equals("")){
								continue;
							}else if(!SFZH.equals(map.get("ZJHM").toString())){
								continue;
							}	
						}
						//
						listttmp.add(map);
					}
					
					if(listttmp.size()>0){
						map.put("code", 0); 
						map.put("msg", null);
						map.put("data",listttmp);
						list.add(resMap);
						response.setHeader("Content-type", "text/html;charset=UTF-8");
						response.setCharacterEncoding("UTF-8");
						String jsonString = JSONUtil.ToJsongString2(map);
						PrintWriter pw = response.getWriter();
						pw.write(jsonString);
					}else{
						map.put("code", 1);
						map.put("CW", "当前条件无信息");
						response.setHeader("Content-type", "text/html;charset=UTF-8");
						response.setCharacterEncoding("UTF-8");
						String jsonString = JSONUtil.ToJsongString2(map);
						PrintWriter pw = response.getWriter();
						pw.write(jsonString);
						return null;
					}
					
			}else{
				map.put("code", 1);
				map.put("CW", retMap.get("RETURNDESC").toString());
				response.setHeader("Content-type", "text/html;charset=UTF-8");
				response.setCharacterEncoding("UTF-8");
				String jsonString = JSONUtil.ToJsongString2(map);
				PrintWriter pw = response.getWriter();
				pw.write(jsonString);
				return null;
			}
		return null;
	}
}
